package initialization

import (
	"fmt"

	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go.uber.org/zap"

	"2106a-zg5/demo/order/order_srv/global"
)

func ViperSSS() {
	//设置 文件 所在位置
	v := viper.New()
	v.SetConfigFile("./order_srv_debug.yaml")
	err := v.ReadInConfig()
	if err != nil {
		fmt.Printf("文件读取失败")
		return
	}
	v.Unmarshal(&global.NacosConfig)

	go func() {
		//动态观察
		v.WatchConfig()
		//监听配置文件修改的时候
		v.OnConfigChange(func(e fsnotify.Event) {
			fmt.Println("Config file changed:", e.Name)
			_ = v.ReadInConfig() // 读取配置数据
			_ = v.Unmarshal(&global.NacosConfig)
			zap.S().Debug(global.NacosConfig)
		})
	}()
}
